#define	_CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

// int missingNumber(int* nums, int numsSize){
//     int i = 0;
//     int n = 0;
//     for(i = 0; i < numsSize; ++i)
//     {
//         n -= nums[i];
//         n += i + 1;
//     }
//     return n;
// }

//int missingNumber(int* nums, int numsSize) {
//    int i = 0;
//    int n = 0;
//    for (i = 0; i < numsSize; ++i)
//    {
//        n ^= nums[i];
//        n ^= i + 1;
//    }
//    return n;
//}

//int* singleNumbers(int* nums, int numsSize, int* returnSize) {
//    int i = 0;
//    int* ans = (int*)calloc(2, sizeof(int));
//    int ret = 0;
//    for (i = 0; i < numsSize; ++i)
//    {
//        ret ^= nums[i];
//    }
//    int n = 1;
//    while ((ret & n) == 0)
//    {
//        n <<= 1;
//    }
//    for (i = 0; i < numsSize; ++i)
//    {
//        if (nums[i] & n)
//        {
//            ans[0] ^= nums[i];
//        }
//        else
//        {
//            ans[1] ^= nums[i];
//        }
//    }
//    *returnSize = 2;
//    return ans;
//}

//int main()
//{
//    int nums[4] = { 1, 2, 2, 5 };
//    int numsSize = 4;
//    int i = 0;
//    int ans[2] = { 0 };
//    int ret = 0;
//    for (i = 0; i < numsSize; ++i)
//    {
//        ret ^= nums[i];
//    }
//    int n = 1;
//    while ((ret & n) == 0)
//    {
//        n <<= 1;
//    }
//    for (i = 0; i < numsSize; ++i)
//    {
//        if (nums[i] & n)
//        {
//            ans[0] ^= nums[i];
//        }
//        else
//        {
//            ans[1] ^= nums[i];
//        }
//    }
//    for (i = 0; i < 2; ++i)
//    {
//        printf("%d ", ans[i]);
//    }
//    return 0;
//}